/**
 * 
 输入一棵二叉树和一个整数，打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
 */

var pathSum = function(root, target) {
    let res = [];
    let path = [];

    function recur(root, tar) {
        if (!root) return;
        path.push(root.val);
        tar -= root.val;
        if (tar == 0 && !root.left && !root.right) {
            res.push(path.concat());
        }
        recur(root.left, tar);
        recur(root.right, tar);
        path.pop();
    }
    recur(root, target);
    return res;
}